home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / ACE_Prgs.lha / file / datestamp.b < prev    next >
Text File  |  1995-01-27  |  1KB  |  83 lines

  1. {*
  2. ** Getting a file's DateStamp.
  3. ** Author: David J Benn
  4. **   Date: 27th January 1995
  5. *}
  6.  
  7. DEFLNG a-z
  8.  
  9. {*
  10. ** Constants.
  11. *}
  12. CONST ACCESS_READ = -2&
  13. CONST NULL = 0&
  14. CONST true = -1&, false = 0&
  15.  
  16. {*
  17. ** Structure definitions.
  18. *}
  19. STRUCT DateStamp
  20.   LONGINT days
  21.   LONGINT mins
  22.   LONGINT ticks
  23. END STRUCT
  24.  
  25. STRUCT FileInfoBlock
  26.   longint fib_DiskKey
  27.   longint fib_DirEntryType
  28.   string  fib_FileName size 108
  29.   longint fib_Protection
  30.   longint fib_EntryType
  31.   longint fib_Size
  32.   longint fib_NumBlocks
  33.   string  fib_Date size 12
  34.   string  fib_Comment size 80
  35.   string  fib_Reserved size 36
  36. END STRUCT
  37.  
  38. {*
  39. ** Shared library functions.
  40. *}
  41. DECLARE FUNCTION Lock& library dos
  42. DECLARE FUNCTION UnLock library dos
  43. DECLARE FUNCTION Examine library dos
  44.  
  45. {*
  46. ** Subprograms.
  47. *}
  48. SUB GetDateStamp(STRING fname, ADDRESS ds_addr)
  49. LONGINT mylock
  50. DECLARE STRUCT DateStamp *ds,*Date
  51. DECLARE STRUCT FileInfoBlock info
  52.  
  53.   mylock = Lock(fname,ACCESS_READ) 
  54.  
  55.   IF mylock <> NULL THEN
  56.     Examine(mylock,info)
  57.     Date = @info->fib_Date
  58.     ds = ds_addr
  59.     ds->days  = Date->days
  60.     ds->mins  = Date->mins
  61.     ds->ticks = Date->ticks
  62.     UnLock(mylock)
  63.     GetDateStamp = true
  64.   ELSE
  65.     GetDateStamp = false
  66.   END IF
  67. END SUB
  68.  
  69. {*
  70. ** Main.
  71. *}
  72. DECLARE STRUCT DateStamp stamp
  73.  
  74. IF ARGCOUNT = 1 THEN
  75.   IF GetDateStamp(ARG$(1),stamp) THEN
  76.     PRINT stamp->days;
  77.     PRINT stamp->mins;
  78.     PRINT stamp->ticks
  79.   END IF
  80. ELSE
  81.   PRINT "usage: ";ARG$(0);" filename" 
  82. END IF
  83.